//
//  AppDelegate.swift
//  Super_WeiBo
//
//  Created by 梁超 on 16/3/15.
//  Copyright © 2016年 lc. All rights reserved.
//

import UIKit

// 切换控制器通知
let Super_ChaoSwitchRootControllerKey = "Super_ChaoSwitchRootControllerKey"

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        // 设置导航条、工具条外观，这里设置全局有效
        UINavigationBar.appearance().tintColor = UIColor.orangeColor()
        UITabBar.appearance().tintColor = UIColor.orangeColor()
        
        // 注册通知
        NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(AppDelegate.switchRootViewController(_:)), name: Super_ChaoSwitchRootControllerKey, object: nil)
        
        // 设置根控制器
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        window?.backgroundColor = UIColor.whiteColor()
        window?.rootViewController = defaultContoller() // 设置默认控制器
        window?.makeKeyAndVisible()
        
        return true
    }
    /**
     析构方法中移除通知
     */
    deinit
    {
        NSNotificationCenter.defaultCenter().removeObserver(self)
    }
    /**
     通知方法
     */
    func switchRootViewController(notify : NSNotification)
    {
        if notify.object as! Bool
        {// 展示主页
            window?.rootViewController = MainViewController()
        }
        else
        {// 展示欢迎页
            window?.rootViewController = WelcomeViewController()
        }
    }
    
    /**
     用于获取默认界面
     */
    private func defaultContoller() -> UIViewController
    {
        // 检测用户是否登录
        if UserAccount.userLogine()
        {// 登录过，判断是否有新特性
            return isNewupdate() ? NewfeatureCollectionViewController() : WelcomeViewController()
        }
        return MainViewController()
    }
    
    /**
     判断是否有新版本
     */
    private func isNewupdate() -> Bool{
        // 1.获取当前软件的版本号 --> info.plist
        let currentVersion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
        
        // 2.获取以前的软件版本号 --> 从本地文件中读取(以前自己存储的)
        let sandboxVersion =  NSUserDefaults.standardUserDefaults().objectForKey("CFBundleShortVersionString") as? String ?? ""
        
        // 3.比较当前版本号和以前版本号
        //   2.0                    1.0
        if currentVersion.compare(sandboxVersion) == NSComparisonResult.OrderedDescending
        {
            // 3.1.1存储当前最新的版本号
            NSUserDefaults.standardUserDefaults().setObject(currentVersion, forKey: "CFBundleShortVersionString")
            return true
        }
        return false
    }
    
}

